#ifndef XING9_H
#define XING9_H
#include "base/cycle.h"
#include "base/wuxing.h"

class XING9_CEXT
{
public:
    XING9_CEXT();
    XING9_CEXT(int wx, const char* clr);
    WUXING::WX5 wx5() const;
    void gyu(WUXING::WX5);
    void wyu(WUXING::WX5);
    WUXING::WXXQF wxxqfg() const;
    WUXING::WXXQF wxxqfw() const;
    const char* clr() const;
private:
    struct{
        i32 _wx:4;
        i32 _wxxqf1:4;
        i32 _wxxqf2:4;
    };
    const char* _clr;
};


namespace QM {
    enum
    {
        PPENG, RENNN, CHONG, FUUUU,
        YYING, RUIII, ZHUUU, XINNN, QINNN,
        X____ = INVALIDID
    };

    class CXING9_CEXT : public XING9_CEXT
    {
    public:
        template <class... ARGS>
        CXING9_CEXT(ARGS... args):XING9_CEXT(args...){}
    };

    typedef cycle<CXING9_CEXT, 9> XING9;
};

namespace XK {
    class CXING9_CEXT : public XING9_CEXT
    {
    public:
        template <class... ARGS>
        CXING9_CEXT(ARGS... args):XING9_CEXT(args...){}
    };
    typedef cycle<CXING9_CEXT, 9> XING9;
};

namespace BD {
    class CXING9_CEXT : public XING9_CEXT
    {
    public:
        template <class... ARGS>
        CXING9_CEXT(ARGS... args):XING9_CEXT(args...){}

    };
    typedef cycle<CXING9_CEXT, 9> XING9;
};



#endif // XING9_H
